<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');
/**
 *Trieda sluzi na pirhlasenie a odhlasenie 
 *pouzivatela vytvorenim alebo zrudenim session 
 */

class Login extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->model('login_model');
    }
    /**
     * Metoda vygeneruje vstupny formular v pripade ak neexistuje session,
     * po odoslani formulara sa okontroluju udaje pomocou metody verifyLogin() v 
     * login_modely. Ak udaje nie su spravne vrati pouzivatela spat na login
     * ak udaje su spravne odkaze pouzivatela na prislusny kontroler podla role.
     */
    function index() {
        if (isset($this->session->userdata['logged_in'])) {
         if ($this->session->userdata['isAdmin']) redirect('admin');
         else redirect('user');
        }

        $this->form_validation->set_rules('login_meno', 'meno', 'trim|required|xss_clean');
        $this->form_validation->set_rules('login_pass', 'heslo', 'trim|required|xss_clean');

        if ($this->form_validation->run()) {
            $data = array('username' => $_POST['login_meno'], 'password' => sha1($_POST['login_pass']));
            if ($sess_data = $this->login_model->verifyLogin($data)) {
                
                $this->session->set_userdata($sess_data);
                redirect($sess_data['isAdmin'] ? 'admin' : 'user');
            } else redirect('login');
        } else {
            $this->template->set('title', 'login');
            $this->template->view("login_form");
        }
    }
    /**
     * Ak je pouzivatel prihlaseny metoda odhlasi pouzivatela(zrusi session) 
     */
    function logout(){
      if (isset($this->session->userdata['logged_in'])) $this->session->sess_destroy();
      redirect('login');
    }

}